package br.com.inventario.controller;

import br.com.inventario.Inventario;
import br.com.inventario.dao.IInventarioDAO;
import br.com.inventario.dao.InventarioDAO;
import br.com.inventario.dao.InventarioDAOException;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

public class InventarioController {
    
    private DataModel model;
    private Inventario objInventario = new Inventario();

    public InventarioController() {    
    }

    public DataModel<Inventario> getListaInventario()
            throws InventarioDAOException {
        IInventarioDAO idao = new InventarioDAO();
        model = new ListDataModel(idao.select());
        return model;
    }

    public DataModel<Inventario> getListaBaixado()
            throws InventarioDAOException {
        IInventarioDAO idao = new InventarioDAO();
        model = new ListDataModel(idao.select2());
        return model;
    }
    
    public Inventario getObjetoFromEditOrDelete(){
        Inventario objeto = (Inventario)model.getRowData();
        return objeto;
    }
    
    public String excluirAtivo() throws InventarioDAOException{
        IInventarioDAO idao = new InventarioDAO();
        Inventario inventario = getObjetoFromEditOrDelete();
        idao.excluirAtivo(inventario);
        return "sucesso_exclusão";
    }

     public String alterarAtivo() throws InventarioDAOException{
        setObjInventario(getObjetoFromEditOrDelete());
        return "alterar_ativo";
    }
    
    public String gravarAlteracaoAtivo() throws InventarioDAOException{
        IInventarioDAO idao = new InventarioDAO();
        idao.alterarAtivo(objInventario);
        return "sucesso_alterar_ativo";
    }

    public Inventario getObjInventario() {
        return objInventario;
    }

    public void setObjInventario(Inventario objInventario) {
        this.objInventario = objInventario;
    }
     
    public String criarNovoItem() {
        objInventario = new Inventario();
        return "adicionar_ativo";
    }
    
    public String gravarNovoItem() throws InventarioDAOException{
        IInventarioDAO idao = new InventarioDAO();
        idao.gravarItem(objInventario);
        return "novo_item_gravado";
    }

    public String venderAtivo() throws InventarioDAOException {
        setObjInventario(getObjetoFromEditOrDelete());
        return "vender_ativo";
    }

    public String gravarVenderAtivo() throws InventarioDAOException {
        IInventarioDAO idao = new InventarioDAO();
        idao.alterarAtivo(objInventario);
        return "sucesso_vender_ativo";
    }
}
